<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Computerprogramm</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Computerprogramm"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Computerprogramm rootpage-Computerprogramm skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Computerprogramm</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Ein <b>Computerprogramm</b> oder kurz <b>Programm</b> ist eine den Regeln einer bestimmten <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> genügende Folge von <a href="Anweisung_(Programmierung)" title="Anweisung (Programmierung)">Anweisungen</a> (bestehend aus <a href="Deklaration_(Programmierung)" title="Deklaration (Programmierung)">Deklarationen</a> und <a href="Instruktion#Programmierbefehl" title="Instruktion">Instruktionen</a>), um bestimmte Funktionen bzw. Aufgaben oder Probleme mithilfe eines <a href="Computer" title="Computer">Computers</a> zu bearbeiten oder zu lösen.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Die bekannteste Form von Programmen sind <a href="Anwendungssoftware" title="Anwendungssoftware">Anwendungsprogramme</a> wie bspw. <a href="Mobile_App" title="Mobile App">Apps</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Überblick"><span id=".C3.9Cberblick"></span>Überblick</h2></div>
<p>Ein Computerprogramm gehört zur <a href="Software" title="Software">Software</a> eines Computers. Es liegt meist auf einem Datenträger als <a href="Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">ausführbare Programmdatei</a>, häufig im sogenannten <a href="Maschinensprache" title="Maschinensprache">Maschinencode</a>, vor, die zur Ausführung in den <a href="Arbeitsspeicher" title="Arbeitsspeicher">Arbeitsspeicher</a> des Rechners geladen wird. Das Programm wird als Abfolge von Maschinen-, d. h. Prozessorbefehlen von dem oder den <a href="Prozessor" title="Prozessor">Prozessoren</a> des <a href="Computer" title="Computer">Computers</a> verarbeitet und damit ausgeführt.
</p><p>Computerprogramme entstehen im Rahmen der <a href="Softwareentwicklung" class="mw-redirect" title="Softwareentwicklung">Softwareentwicklung</a>. Die dabei direkt auf einzelne Programme bezogenen Aktivitäten bezeichnet man im allgemein als <a href="Programmierung" title="Programmierung">Programmierung</a> oder auch als <a href="Implementierung" title="Implementierung">Implementierung</a>. Dabei entsteht zunächst für jedes Programm ein sog. <a href="Quelltext" title="Quelltext">Quelltext</a>, den Programmierer in einer <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> abgefasst haben. Er besteht aus einer Abfolge von (zumeist der englischen Sprache entnommenen) Anweisungen, die (für Programmierer) im Allgemeinen verständlicher sind (z. B. ADD, SUB, AND, OR) und durch menschliche Benutzer einfacher bearbeitbar sind als der später daraus entstehende Maschinencode.
</p><p>Damit ein in einer Hochsprache geschriebenes Programm ausgeführt werden kann, muss sein Quellcode in Maschinencode übersetzt werden. Eine Anweisung einer höheren Programmiersprache wird im Allgemeinen in mehrere Maschinenbefehle übersetzt. Der Übersetzungsvorgang wird <a href="Compiler" title="Compiler">Kompilierung</a> genannt. Um aus dem Quelltext den Maschinencode zu generieren, wird ein <a href="Assembler_(Informatik)" title="Assembler (Informatik)">Assembler</a>, <a href="Compiler" title="Compiler">Compiler</a> oder <a href="Interpreter" title="Interpreter">Interpreter</a> benötigt. Dieser übersetzt die Anweisungen der Programmiersprache in die <a href="Semantik" title="Semantik">semantisch</a> entsprechenden Befehle der Maschinensprache des zu verwendenden Computers.
</p><p>Der Programmcode kann in Dateien gespeichert werden, die meist durch eine Dateiendung gekennzeichnet sind. Quelltextdateien weisen damit auf die verwendete Hochsprache hin (<i><programm>.c</i>: ein in <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a> formuliertes Programm). Sie können im Allgemeinen mit einem einfachen Texteditor bearbeitet werden. Eine Datei, die dagegen Maschinencode enthält, besitzt keine oder eine <a href="Betriebssystem" title="Betriebssystem">betriebssystemspezifische</a> Endung, die lediglich auf ihre Ausführbarkeit hinweist (<i><programm>.<a href="EXE" title="EXE">exe</a></i> bei <a href="MS-DOS" title="MS-DOS">MS-DOS</a> und <a href="Windows" class="mw-redirect" title="Windows">Windows</a>; <i><programm></i> bei <a href="Unix" title="Unix">unixoiden</a> Systemen). Sie kann oft als Kommando in einem Terminal (<a href="Eingabeaufforderung" class="mw-redirect" title="Eingabeaufforderung">Eingabeaufforderung</a>) aufgerufen werden. Siehe auch <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliothek</a>.
</p><p>Im Sprachgebrauch wird Computerprogramm meist zu <i>Programm</i> verkürzt oder der Begriff <i><a href="Software" title="Software">Software</a></i> verwendet. Allerdings ist <i>Computerprogramm</i> kein Synonym zu <i>Software</i>; vielmehr ist ‚Software‘ ein IT-Sammelbegriff für Nicht-Hardware, zum Beispiel für <a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a>, <a href="Datenbank" title="Datenbank">Datenbank</a> oder für eine komplette, für den Benutzer fertige <a href="Programmpaket" title="Programmpaket">IT-Anwendung</a> – die Komponenten wie Grafik- und <a href="Audiodatei" title="Audiodatei">Audiodateien</a>, <a href="Font_(Informationstechnologie)" class="mw-redirect" title="Font (Informationstechnologie)">Schriftarten</a>, Hilfetexte usw. umfassen kann.
</p><p>Ein größeres Computerprogramm besteht meist aus mehreren <a href="Modul_(Software)" title="Modul (Software)">Modulen</a> – die entweder zum Programm selbst gehören oder die als Bausteine (<a href="Unterprogramm" title="Unterprogramm">Unterprogramme</a>) aus bereits bestehenden <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliotheken</a> bei der Ausführung des Programms benutzt werden. Im umgekehrten Fall können Computerprogramme Teil eines übergeordneten, ein größeres Aufgabengebiet abdeckenden <i>Anwendungssystems</i> sein; Beispiel: Gehaltsabrechnung, Finanzbuchhaltung, <a href="Meldepflicht" title="Meldepflicht">Meldewesen</a>. Die Anweisungen, die (als Teil von Programmen) einen konkreten Lösungsweg repräsentieren, werden als <a href="Algorithmus" title="Algorithmus">Algorithmus</a> bezeichnet; Beispiel: Berechnen der Mehrwertsteuer.
</p><p>Die Entwicklung von Computerprogrammen ist das Gebiet der <a href="Softwaretechnik" title="Softwaretechnik">Softwaretechnik</a>. Je nach Komplexität der zu entwickelnden Computerprogramme geschieht dies im Rahmen von <a href="Projekt" title="Projekt">Projekten</a>. Die Aktivitäten der Beteiligten werden dabei meist unter Anwendung von <a href="Vorgehensmodell_zur_Softwareentwicklung" title="Vorgehensmodell zur Softwareentwicklung">Vorgehensmodellen</a>, speziellen <a href="Softwaretechnik#Methoden_zur_Softwareentwicklung" title="Softwaretechnik">Methoden</a> und <a href="Entwicklungswerkzeug" class="mw-redirect" title="Entwicklungswerkzeug">Werkzeugen</a> zur Softwareentwicklung ausgeführt. In den Anfängen der Programmierung wurde – bis zur Entwicklung von <a href="Programmiersprache" title="Programmiersprache">Programmiersprachen</a> – ausschließlich in Maschinencode programmiert. Später kamen <a href="H%C3%B6here_Programmiersprache" title="Höhere Programmiersprache">höhere Programmiersprachen</a> zum Einsatz.
</p><p>Je komplexer ein Computerprogramm ist, desto anspruchsvoller ist die vorbereitende Planung und desto wichtiger die Erfahrung der ausführenden Programmierer. Bei größeren Programmen kommt es aufgrund mangelnder Planung und Erfahrung der Programmierer oft zu unnötig komplexen und/oder ineffizienten Programmen oder Programmteilen (siehe auch <a href="Bloatware" title="Bloatware">Bloatware</a>).
</p>
<div class="mw-heading mw-heading2"><h2 id="Klassifizierungsmöglichkeiten"><span id="Klassifizierungsm.C3.B6glichkeiten"></span>Klassifizierungsmöglichkeiten</h2></div>
<p>Neben den für <a href="Software" title="Software">Software</a> im Allgemeinen geltenden <a href="Software#Kategorisierung" title="Software">Unterscheidungsmerkmalen</a> lassen sich Computerprogramme (als Untervariante von Software) nach den folgenden, beispielhaft genannten Kriterien unterscheiden:
</p>
<ul><li>Quellprogramme (in einer bestimmten <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a>) oder Maschinenprogramme (ausführbar auf bestimmten <a href="Plattform_(Computer)" title="Plattform (Computer)">Plattformen</a>) oder Programme in einem Zwischencode</li>
<li>Hauptprogramme (aufgerufen über Betriebssystem-Kommandos) oder Unterprogramme (aufgerufen durch andere Programme). Sonderformen treten auf, wenn Programme z. B. über technische Steuerungskomponenten aufgerufen werden, z. B. über <a href="Serviceorientierte_Architektur" title="Serviceorientierte Architektur">serviceorientierte Architekturen</a>, automatisiertes <a href="Workflow-Management" title="Workflow-Management">Workflow-Management</a>.</li>
<li><a href="Stapelverarbeitung" title="Stapelverarbeitung">Stapelprogramme</a> (verarbeiten ‚Stapel‘ von Daten) bzw. <a href="Shellskript" title="Shellskript">Shellskripte</a> oder Dialogprogramme (stehen in Interaktion mit Benutzern, z. B. über <a href="Dialog_(Benutzeroberfl%C3%A4che)" title="Dialog (Benutzeroberfläche)">Dialoge</a>)</li>
<li>Nach dem Ort der Speicherung und Programmausführung unterschieden können Programme lokal (auf einem Arbeitsplatzrechner) gespeichert und ausgeführt werden oder auf einem <a href="Server" title="Server">Server</a> installiert sein und trotzdem lokal (nach dem Laden über eine <a href="Online" title="Online">Online</a>-Verbindung) ausgeführt werden oder nur auf dem Server gespeichert und dort auch ausgeführt werden. Bei verteilten Anwendungen werden Programmteile auf unterschiedlichen Rechnern ausgeführt, z. B. die Geschäftslogik und Datenhaltung im Server, Funktionen der <a href="Grafische_Benutzeroberfl%C3%A4che" title="Grafische Benutzeroberfläche">Benutzeroberfläche</a> am lokalen Rechner; im rein technischen Sinn stehen hierbei verschiedene Programme miteinander in Verbindung.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<div class="sieheauch" role="navigation" style="font-style:italic;"><span class="sieheauch-text">Siehe auch</span>: <a href="Geschichte_der_Programmiersprachen" title="Geschichte der Programmiersprachen">Geschichte der Programmiersprachen</a>, <a href="Programmiersprache#Geschichte" title="Programmiersprache">Programmiersprache#Geschichte</a> und <a href="Programmierung#Geschichte" title="Programmierung">Programmierung#Geschichte</a></div>
<div class="mw-heading mw-heading3"><h3 id="Die_Analytische_Maschine_von_Charles_Babbage">Die Analytische Maschine von Charles Babbage</h3></div>
<p><a href="Charles_Babbage" title="Charles Babbage">Charles Babbage</a> stellte bereits 1832 einen Demonstrator seiner <a href="Differenzmaschine" title="Differenzmaschine">Differenzmaschine</a> <a href="Differenzmaschine#Difference_machine_No._1" title="Differenzmaschine">No. 1</a> vor, verfolgte ab 1834 jedoch das Konzept einer per <a href="Dampfmaschine" title="Dampfmaschine">Dampfkraft</a> betriebenen Rechenmaschine für die allgemeine Anwendung, die er <span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">„<a href="Analytical_Engine" title="Analytical Engine">Analytical Engine</a>“</span> nannte, „Analytische Maschine“.<sup id="cite_ref-heiseonline_3315325_2-0" class="reference"><a href="#cite_note-heiseonline_3315325-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Diese hätte per <a href="Lochkarte" title="Lochkarte">Lochkarten</a> programmiert werden können, unterschiedliche Rechnungen durchzuführen, sodass die Auswertung <a href="Polynom" title="Polynom">polynomialer</a> <a href="Funktion_(Mathematik)" title="Funktion (Mathematik)">Funktionen</a> (die alleinige Funktion der Differenzmaschine) nur ein Programm unter vielen gewesen wäre.
</p><p>Für die Entwicklung seiner universellen Rechenmaschine brachte Charles Babbage zwischen 1837 und 1840 insgesamt 27 Programme zu Papier. Einige der Designentscheidungen für die Analytischen Maschine lassen sich direkt im <a href="Quelltext" title="Quelltext">Quelltext</a> der Programme nachvollziehen.<sup id="cite_ref-heiseonline_3315325_2-1" class="reference"><a href="#cite_note-heiseonline_3315325-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> So hat die Analytische Maschine bereits eine Trennung zwischen Speicher und Rechenwerk, was charakteristisch für Computer seit den 1940er Jahren ist.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Obwohl nie gebaut, gilt die <i><span lang="en">Analytical Engine</span></i> damit als der erste Computer der Geschichte,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> oder zumindest als dessen Vorläufer<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> nach der Definition einer <a href="Universelle_Turingmaschine" title="Universelle Turingmaschine">Universellen Rechenmaschine</a> (<span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">multipurpose computing machine</span>) nach <a href="Alan_Turing" title="Alan Turing">Alan Turing</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Seine Notizen, die auch die Programme beinhalten, blieben unveröffentlicht und wurden 1937 wiederentdeckt.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> Die Quelltexte der Programme selbst wurden erst 1982 erstmals untersucht.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Die Notizen von Charles Babbage zur <i><span lang="en">Analytical Engine</span></i> sind in den ‚<span lang="en">babbage papers</span>‘ des <a href="Science_Museum" title="Science Museum">Science Museums</a> von <a href="London" title="London">London</a> frei, als <a href="Open_Access" title="Open Access">Open Access</a>, abrufbar.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p><p>Das erste Programm trägt den 4. August 1837 als Datum und befasst sich mit Simultangleichungen der <a href="Cramersche_Regel" title="Cramersche Regel">Cramerschen Regel</a>. Einige der späteren Programme sind relativ komplex, wie z. B. die Multiplikation von zwei Polynomen. Der Code enthält bereits <a href="Adressierung_(Rechnerarchitektur)#Indirekte_Adressierung" title="Adressierung (Rechnerarchitektur)">Indirekte</a> <a href="Adressierung_(Rechnerarchitektur)" title="Adressierung (Rechnerarchitektur)">Adressierung</a> und den <a href="Bedingte_Anweisung_und_Verzweigung" title="Bedingte Anweisung und Verzweigung">bedingten</a> <a href="Sprunganweisung" title="Sprunganweisung">Sprung</a> (IF-THEN-ELSE-Befehle).
</p>
<div class="mw-heading mw-heading3"><h3 id="Das_erste_veröffentlichte_Computerprogramm_von_Ada_Lovelace"><span id="Das_erste_ver.C3.B6ffentlichte_Computerprogramm_von_Ada_Lovelace"></span>Das erste veröffentlichte Computerprogramm von Ada Lovelace</h3></div>
<p><a href="Ada_Lovelace" title="Ada Lovelace">Ada Lovelace</a>, Tochter des britischen Dichters <a href="George_Gordon_Byron" title="George Gordon Byron">Lord Byron</a>, traf Charles Babbage 1833 und unterhielt mit ihm bis zu ihrem Tod 1852 eine Freundschaft. Ab ca. 1841 arbeitete sie mit ihm zusammen an der Analytischen Maschine.
</p><p>1843 übersetzte sie ein Manuskript des italienischen Ingenieurs <a href="Luigi_Federico_Menabrea" title="Luigi Federico Menabrea">Luigi Federico Menabrea</a> über die <i><span lang="en">Analytical Engine</span></i> ins Englische, versah die Übersetzung jedoch mit zahlreichen zusätzlichen Anmerkungen zum konzeptionellen Unterschied zwischen Babbage’s Differenzmaschine und der Analytischen Maschine. Dazu schrieb sie auch ein Programm, das die <a href="Bernoulli-Zahl" title="Bernoulli-Zahl">Bernoulli-Zahlen</a> berechnet.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Es ist die weltweit erste Publikation eines Computerprogramms, wodurch Ada Lovelace als die erste Programmiererin gilt.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>Die 1980 veröffentlichte Programmiersprache <a href="Ada_(Programmiersprache)" title="Ada (Programmiersprache)">Ada</a> ist nach Ada Lovelace benannt.
</p>
<div class="mw-heading mw-heading3"><h3 id="Erste_Programme_auf_Lochstreifen">Erste Programme auf Lochstreifen</h3></div>
<p>In den Jahren 1936 bis 1941 entwarf <a href="Konrad_Zuse" title="Konrad Zuse">Konrad Zuse</a> die Rechner <a href="Zuse_Z1" class="mw-redirect" title="Zuse Z1">Z1</a> und <a href="Zuse_Z3" title="Zuse Z3">Z3</a>, die lange Befehlsfolgen auf einem <a href="Lochstreifen" title="Lochstreifen">Lochstreifen</a> verarbeiteten, die ersten Computerprogramme, die auf realen Maschinen ausgeführt werden konnten. Die Rechner beherrschten die vier <a href="Grundrechenart" title="Grundrechenart">Grundrechenarten</a> und <a href="Quadratwurzel" title="Quadratwurzel">Quadratwurzelberechnungen</a> auf binären <a href="Gleitkommazahl" title="Gleitkommazahl">Gleitkommazahlen</a>, der Lochstreifen enthielt jeweils eine Rechenoperation und eine Speicheradresse.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p><p>Auf Zuse geht auch die erste höhere Programmiersprache <i><a href="Plankalk%C3%BCl" title="Plankalkül">Plankalkül</a></i> zurück. Damit lassen sich Probleme maschinenunabhängig formulieren und später in eine maschinenlesbare Form überführen.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programme_im_Arbeitsspeicher">Programme im Arbeitsspeicher</h3></div>
<p>Der <a href="Electronic_Discrete_Variable_Automatic_Computer" title="Electronic Discrete Variable Automatic Computer">EDVAC</a>-Rechner, der auf einem Entwurf von <a href="John_von_Neumann" title="John von Neumann">John von Neumann</a> aus dem Jahre 1945 basiert, hatte einen Quecksilber-Verzögerungsspeicher für 1024 Fest- oder Gleitkommazahlen mit jeweils 44 Bit. Jede Speicherzelle konnte statt einer Zahl auch einen Befehl aufnehmen. Bei diesem Rechnerkonzept war es möglich, die Befehle eines Computerprogramms vor der Ausführung zuerst in den Arbeitsspeicher zu übertragen. Das ist heute noch üblich. EDVAC wurde jedoch erst im Jahr 1951 teilweise fertiggestellt. Der Demonstrationsrechner Manchester SSE und der auf dem EDVAC aufbauende <a href="Electronic_Delay_Storage_Automatic_Calculator" title="Electronic Delay Storage Automatic Calculator">EDSAC</a>-Rechner hatten schon vorher Programme aus dem Arbeitsspeicher ausgeführt.
</p>
<div class="mw-heading mw-heading3"><h3 id="Höhere_Programmiersprachen_und_Compiler"><span id="H.C3.B6here_Programmiersprachen_und_Compiler"></span>Höhere Programmiersprachen und Compiler</h3></div>
<p>Ende der 1950er-Jahre wurden Computer so leistungsfähig, dass spezielle Programme, <a href="Compiler" title="Compiler">Compiler</a> genannt, Quelltexte in höheren Programmiersprachen automatisch in Maschinenbefehle, also <a href="Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">ausführbare Programme</a>, übersetzen konnten. Ausführbare Programme können dann, wie beim EDVAC, in den Speicher geladen und abgearbeitet werden.
</p><p>Mit <a href="Fortran" title="Fortran">Fortran</a>, <a href="COBOL" title="COBOL">COBOL</a>, <a href="ALGOL" title="ALGOL">ALGOL</a> und <a href="LISP" class="mw-redirect" title="LISP">LISP</a> entstanden in den späten 1950er-Jahren die ersten standardisierten höheren Programmiersprachen. Programme in diesen Sprachen laufen, durch einen entsprechenden Compiler übersetzt, auf unterschiedlichen Rechnern. Sie können teilweise auch noch auf modernen Computern eingesetzt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Vom_Algorithmus_zum_Programm">Vom Algorithmus zum Programm</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Berechnung_des_größten_gemeinsamen_Teilers"><span id="Berechnung_des_gr.C3.B6.C3.9Ften_gemeinsamen_Teilers"></span>Berechnung des größten gemeinsamen Teilers</h3></div>
<p>Es soll ein Programm zur Bestimmung des größten gemeinsamen Teilers (ggT) zweier Zahlen erstellt werden. Zunächst muss ein geeigneter Algorithmus gefunden werden.
</p><p>Der <a href="Euklidischer_Algorithmus" title="Euklidischer Algorithmus">Euklidische Algorithmus</a>, der bereits um 300 v. Chr. beschrieben wurde, ermittelt den <a href="Gr%C3%B6%C3%9Fter_gemeinsamer_Teiler" title="Größter gemeinsamer Teiler">größten gemeinsamen Teiler</a> (ggT) zweier <a href="Nat%C3%BCrliche_Zahl" title="Natürliche Zahl">natürlicher Zahlen</a> <i>a</i> und <i>b</i>:
</p>
<ol><li>Sei a die größere der beiden Zahlen a und b.<br>Wenn a kleiner als b ist, dann vertausche die Zahlen.</li>
<li>Setze a auf den Wert a - b.</li>
<li>Wenn a und b ungleich sind, dann fahre mit Schritt 1 fort.<br>Wenn a und b gleich sind, dann ist der Algorithmus beendet.<br>Diese Zahl ist der größte gemeinsame Teiler.</li></ol>
<div class="mw-heading mw-heading3"><h3 id="Verwendung_einer_Programmiersprache">Verwendung einer Programmiersprache</h3></div>
<p>Sobald eine formale Beschreibung eines Algorithmus, also eine genau definierte Verarbeitungsvorschrift, vorliegt, kann der Algorithmus umgesetzt (<i>implementiert</i>) werden. Dazu wird eine geeignete Programmiersprache ausgewählt.
</p><p>Zur Umsetzung wird heute meist eine höhere Programmiersprache verwendet, die von einem Computer eventuell nicht direkt ausgeführt werden kann, sondern zuerst kompiliert oder interpretiert werden muss.
</p><p>In Sprachen wie <a href="Pascal_(Programmiersprache)" title="Pascal (Programmiersprache)">Pascal</a> dienen Variablen, Ausdrücke, Vergleiche, Zuweisungen und <a href="Kontrollstruktur" title="Kontrollstruktur">Kontrollstrukturen</a> zur Umsetzung des ggT-Algorithmus:
</p>
<div class="mw-highlight mw-highlight-lang-pascal mw-content-ltr" dir="ltr"><pre><span></span><span class="k">while</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o"><></span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="c1">// Schritt 3: solange a ungleich b</span>
<span class="k">begin</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="k">then</span><span class="w"> </span><span class="c1">// Schritt 1: falls b größer als a</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">a</span><span class="o">;</span><span class="w"> </span><span class="c1">// a und b vertauschen</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">b</span><span class="o">;</span>
<span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">temp</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">b</span><span class="o">;</span><span class="w"> </span><span class="c1">// Schritt 2: a durch a - b ersetzen</span>
<span class="k">end</span><span class="o">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Berücksichtigung_aller_Sonderfälle"><span id="Ber.C3.BCcksichtigung_aller_Sonderf.C3.A4lle"></span>Berücksichtigung aller Sonderfälle</h3></div>
<p>Bei der Umsetzung wird mit der Prüfung von Schritt 3 begonnen. Der ursprüngliche Algorithmus berücksichtigt nicht den Fall, dass a und b bereits zu Beginn gleich sein können. Wäre es die Aufgabe, den größten Teiler von 103 und 103 zu finden, würde ein Mensch sofort das Ergebnis 103 nennen, er würde den Algorithmus gar nicht bemühen. Der originale Algorithmus würde aber null ergeben. Die Umsetzung auf einem Rechner muss auch alle Sonderfälle berücksichtigen. Durch das Vorziehen von Schritt 3 wird der Sonderfall hier korrekt behandelt.
</p>
<div class="mw-heading mw-heading3"><h3 id="Elementare_Schritte">Elementare Schritte</h3></div>
<p>Pascal und andere Programmiersprachen besitzen keine Operation zum Vertauschen von Zahlen. Dies muss daher in elementarere Schritte umgesetzt werden. Die zusätzliche Variable <code>temp</code>, eine sogenannte Hilfsvariable, erlaubt die Vertauschung mit Hilfe von drei Zuweisungen:
</p>
<div class="mw-highlight mw-highlight-lang-pascal mw-content-ltr" dir="ltr"><pre><span></span><span class="n">temp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">a</span><span class="o">;</span><span class="w"> </span><span class="c1">// Wert von a in der Hilfsvariablen temp retten</span>
<span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">b</span><span class="o">;</span><span class="w"> </span><span class="c1">// a mit dem Wert von b überschreiben</span>
<span class="n">b</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">temp</span><span class="o">;</span><span class="w"> </span><span class="c1">// b mit dem Wert von temp überschreiben</span>
</pre></div>
<p>Auch dies ist ein kleiner Algorithmus.
</p>
<div class="mw-heading mw-heading3"><h3 id="Ein_vollständiges_Programm"><span id="Ein_vollst.C3.A4ndiges_Programm"></span>Ein vollständiges Programm</h3></div>
<p>Damit daraus ein korrektes Programm wird, muss der Algorithmus noch um Ein- bzw. Ausgabeanweisungen, oft jedoch auch um Variablen und eine Programmstruktur ergänzt werden. Diese sind nicht Teil des eigentlichen Algorithmus:
</p>
<div class="mw-highlight mw-highlight-lang-pascal mw-content-ltr" dir="ltr"><pre><span></span><span class="k">program</span><span class="w"> </span><span class="n">Ggt</span><span class="o">;</span><span class="w"> </span><span class="c1">// Programmkopf</span>
<span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">a</span><span class="o">,</span><span class="w"> </span><span class="n">b</span><span class="o">,</span><span class="w"> </span><span class="n">temp</span><span class="o">:</span><span class="w"> </span><span class="kt">Integer</span><span class="o">;</span><span class="w"> </span><span class="c1">// Variablendefinition</span>
<span class="k">begin</span>
<span class="w"> </span><span class="nb">ReadLn</span><span class="p">(</span><span class="n">a</span><span class="o">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="c1">// Eingabe von a und b</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o"><></span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="c1">// Euklidischer Algorithmus</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">a</span><span class="o">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">b</span><span class="o">;</span>
<span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">temp</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">b</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="nb">WriteLn</span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="c1">// Ausgabe von a</span>
<span class="k">end</span><span class="o">.</span><span class="w"> </span><span class="c1">// Programmende</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Übersetzung_und_Ausführung"><span id=".C3.9Cbersetzung_und_Ausf.C3.BChrung"></span>Übersetzung und Ausführung</h3></div>
<p>Ein solches Programm wird unter Verwendung eines <a href="Texteditor" title="Texteditor">Texteditors</a> erstellt und als <a href="Quellcode" class="mw-redirect" title="Quellcode">Quellcode</a> in einer <a href="Datei" title="Datei">Datei</a> oder <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliothek</a> (für <a href="Quelltext" title="Quelltext">Quellcode</a>) gespeichert. Anschließend kann der Quellcode zu einer festen Ablaufanweisung für den Computer 'übersetzt’ werden. Hierzu ist ein <a href="Compiler" title="Compiler">Compiler</a> erforderlich, der den Code aus der jeweiligen <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> in die <a href="Maschinensprache" title="Maschinensprache">Maschinensprache</a> übersetzt und als Ergebnis ein <i>ausführbares Programm</i> erstellt, welches als Datei oder in einer Programmbibliothek (für ausführbare Programme) abgelegt wird. Dieses Programm kann dann über ein <a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a> als <a href="Prozess_(Informatik)" title="Prozess (Informatik)">Prozess</a> gestartet werden, und zwar beliebig oft (ohne neue Übersetzung). Solch ein einzelner laufender Prozess eines Programms wird auch Programminstanz genannt.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>Einige Programmiersprachen verwenden keinen Compiler, sondern einen <a href="Interpreter" title="Interpreter">Interpreter</a>, der Programme erst zur <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> in Maschinensprache übersetzt.
</p><p>Eine weitere Möglichkeit besteht in der Verwendung von <a href="Zwischencode" title="Zwischencode">Zwischencode</a> (<i>Bytecode</i>), der vom Compiler an Stelle des Maschinencodes generiert wird. Ein Beispiel dafür ist <a href="Java_(Technik)" class="mw-redirect" title="Java (Technik)">Java</a>: Der Java-Compiler erzeugt <a href="Bytecode" title="Bytecode">Bytecode</a>, welcher dann auf der sogenannten <a href="Virtuelle_Maschine" title="Virtuelle Maschine">virtuellen Maschine</a> ausgeführt wird. Die virtuelle Maschine interpretiert oder übersetzt dann den Bytecode für das darunterliegende Betriebssystem.
</p><p>Ebenso muss in manchen Rechnerumgebungen, in der Regel bei <a href="Gro%C3%9Frechner" title="Großrechner">Großrechnern</a>, der vom <a href="Compiler" title="Compiler">Compiler</a> erstellte Maschinencode noch mit einem Systemprogramm ('Linkage Editor' o. ä.) nachbearbeitet werden, wobei ggf. weitere <a href="Unterprogramm" title="Unterprogramm">Unterprogramme</a> und Systemroutinen 'eingebunden' werden können. Erst so ist das entstandene Programm <a href="Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">ausführbar</a>.
</p><p>Mittels spezieller Programme, sogenannter <a href="Decompiler" title="Decompiler">Decompiler</a>, ist es in begrenztem Maße möglich, aus dem Maschinencode wieder einen in Hochsprache lesbaren Quelltext zu erzeugen.
</p>
<div class="mw-heading mw-heading3"><h3 id="Lebensphasen">Lebensphasen</h3></div>
<p>Programme haben mindestens zwei klar getrennte Lebensphasen: Der Zeitraum bis zum Zeitpunkt der <a href="Kompilierung" class="mw-redirect" title="Kompilierung">Kompilierung</a> (inklusive) wird <i><a href="Compilezeit" class="mw-redirect" title="Compilezeit">Compilezeit</a></i> genannt, welche im Gegensatz zur <i><a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a></i> steht. In der Compilezeit-Phase hat das Programm <a href="Statische_Code-Analyse" title="Statische Code-Analyse">statische Eigenschaften</a>, gegeben nur durch den festen Quellcode. Nach der Kompilierung und mit der Ausführung besitzt das binäre Programm dynamische Eigenschaften und Verhalten in zusätzlicher Abhängigkeit der jeweiligen <a href="Laufzeitumgebung" title="Laufzeitumgebung">Laufzeitumgebung</a> (variierende Hardware, User-Interaktion etc.).
</p><p>In umfassenderen Sinn lassen sich Lebensphasen von Programmen auch als <a href="Software-Lebenszyklus" title="Software-Lebenszyklus">Software-Lebenszyklus</a> verstehen. Demnach gehören zur inhaltlich präzisen Festlegung des Programm-Inhalts die <a href="Projektphase" title="Projektphase">Projektphasen</a> <i>Problemstellung, Analyse und Entwurf</i>, anschließend folgt die technische <a href="Implementierung#Softwaretechnik" title="Implementierung"><i>Implementierung</i></a>, in der das Programm in Form von <a href="Quelltext" title="Quelltext">Quelltext</a> entsteht. Danach befindet es sich in der Phase <i>Einführung</i>. Nach diesen Entstehungsphasen von Programmen folgt deren <i>produktive Nutzung</i>, bei Bedarf werden Anpassungen und Erweiterungen (<i>Wartungs-/Pflegephase</i>) vorgenommen.
</p><p>Aus betriebswirtschaftlicher Sicht lassen sich auch Computerprogramme nach dem allgemeinen <a href="Produktlebenszyklus" title="Produktlebenszyklus">Produktlebenszyklus</a> klassifizieren.
</p>
<div class="mw-heading mw-heading2"><h2 id="Urheberschutz">Urheberschutz</h2></div>
<p>Ein Computerprogramm wird urheberrechtlich geschützt, wenn es individuelles Ergebnis einer eigenen geistigen Schöpfung ihres Urhebers ist (<span class="-print"><a rel="nofollow" class="external text" href="https://www.gesetze-im-internet.de/urhg/__69a.html">§ 69a</a></span> Abs. 3 UrhG). Mit Umsetzung der <a href="Urheberrechtsrichtlinie" class="mw-redirect" title="Urheberrechtsrichtlinie">Urheberrechtsrichtlinie</a> aus dem Jahre 2001 wurde die Schutzschwelle für Computerprogramme in den EG-Mitgliedsstaaten harmonisiert. Es genügt ein Minimum an Individualität für den Schutz (<a href="Kleine_M%C3%BCnze" title="Kleine Münze">Kleine Münze</a>). Es wird vermutet, dass sich die Individualität des Urhebers im Programm niedergeschlagen hat, wenn Spielraum dazu bestand. Geistiger Gehalt wird vermutet, wenn das Programm von einem menschlichen Urheber geschaffen wurde.
</p>
<dl><dt>Entwicklung</dt>
<dd></dd></dl>
<p>In der Bundesrepublik erfolgte die gesetzliche Anerkennung des Urheberrechtsschutzes 1985;<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> die Rechtsprechung hielt ihn schon vorher für möglich.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>1991 folgte die <a href="Richtlinie_91/250/EWG_(Computerprogramm-Richtlinie)" title="Richtlinie 91/250/EWG (Computerprogramm-Richtlinie)">Richtlinie 91/250/EWG</a> über den Rechtsschutz von Computerprogrammen, 1993 gesetzliche Regelungen in Österreich<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> und der Schweiz<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> sowie 1996 in Liechtenstein.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p><p>In der DDR hatte die Rechtsprechung 1979 die urheberrechtliche Schutzfähigkeit verneint,<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> jedoch konnte in Wirtschaftsverträgen über wissenschaftlich-technische Leistungen die Vergabe von Software durch andere Partner als die erarbeitende Wirtschaftseinheit ausgeschlossen werden.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Anwendungssoftware" title="Anwendungssoftware">Anwendungssoftware</a></li>
<li><a href="Dienstprogramm" title="Dienstprogramm">Dienstprogramm</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li><a href="John_von_Neumann" title="John von Neumann">John von Neumann</a>: <a rel="nofollow" class="external text" href="http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf"><i>First Draft of a Report on the EDVAC</i>.</a> (PDF; 0,4 MB) 1945</li>
<li>Martín Abadi, Takayasu Itō: <a rel="nofollow" class="external text" href="https://link.springer.com/book/10.1007/BFb0014544"><i>Theoretical Aspects of Computer Software</i>.</a> 1997</li>
<li>Masami Hagiya, John C. Mitchell: <a rel="nofollow" class="external text" href="https://link.springer.com/book/10.1007/3-540-57887-0"><i>Theoretical Aspects of Computer Software</i>.</a> 1994</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noresize noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Commons"></span></span></div><b><span class=""><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Software?uselang=de"><span lang="en">Commons</span>: Computerprogramm</a></span></b> – Sammlung von Bildern, Videos und Audiodateien</div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><span class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wiktionary"></span></span></span><b><a href="https://de.wiktionary.org/wiki/Computerprogramm" class="extiw external" title="wikt:Computerprogramm">Wiktionary: Computerprogramm</a></b> – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen</div>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=7229">ISO/IEC 2382-1:1993</a> definiert „computer program“: „A syntactic unit that conforms to the rules of a particular programming language and that is composed of declarations and statements or instructions needed to solve a certain function, task, or problem.“ Bis 2001 definierte die DIN 44300 „Informationsverarbeitung Begriffe“ identisch.</span>
</li>
<li id="cite_note-heiseonline_3315325-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-heiseonline_3315325_2-0">a</a></sup> <sup><a href="#cite_ref-heiseonline_3315325_2-1">b</a></sup></span> <span class="reference-text">Raúl Rojas: <a rel="nofollow" class="external text" href="https://heise.de/-3315325"><span style="font-style:italic;">Die ersten Computerprogramme der Welt.</span></a> In: <i><a href="Heise_online" title="Heise online">Heise online</a>.</i> <span style="white-space:nowrap;">18. September 2016</span>. Abgerufen am 22. Januar 2022.; Zitat: „Charles Babbage hat ab 1837 innerhalb von drei Jahren 27 Programme für die schließlich unvollendet gebliebene ‚Analytische Maschine‘ auf Papier gebracht“.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite">Doron D. Swade: <a rel="nofollow" class="external text" href="https://www.spektrum.de/magazin/der-mechanische-computer-des-charles-babbage/820781"><i>Der mechanische Computer des Charles Babbage.</i></a><span class="Abrufdatum"> Abgerufen am 22. Januar 2022</span> (Spektrum der Wissenschaft 4/1993, S. 78).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AComputerprogramm&rft.title=Der+mechanische+Computer+des+Charles+Babbage&rft.description=Der+mechanische+Computer+des+Charles+Babbage&rft.identifier=https%3A%2F%2Fwww.spektrum.de%2Fmagazin%2Fder-mechanische-computer-des-charles-babbage%2F820781&rft.creator=Doron+D.+Swade"> </span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">Mickaël Launay: <cite style="font-style:italic">Der große Roman der Mathematik: Von den Anfängen bis heute</cite>. C.H.Beck, 2018, ISBN 978-3-406-72152-6 (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=phZMDwAAQBAJ&pg=PT248">eingeschränkte Vorschau</a> in der Google-Buchsuche): „Diese revolutionäre Funktionsweise macht Babbages Erfindung zum ersten Computer der Geschichte.“<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.au=Micka%C3%ABl+Launay&rft.btitle=Der+gro%C3%9Fe+Roman+der+Mathematik%3A+Von+den+Anf%C3%A4ngen+bis+heute&rft.date=2018&rft.genre=book&rft.isbn=9783406721526&rft.pub=C.H.Beck" style="display:none"> </span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text">Jürgen Beetz: <cite style="font-style:italic">Digital: Wie Computer denken</cite>. Springer-Verlag, 2019, ISBN 978-3-662-58630-3, 1.1 Eine Analogie zu analog und digital, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>3</span> (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=DxegDwAAQBAJ&pg=PA3&q=Ada+Lovelace#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche): „Er erfand zwei mechanische programmierbare Rechenmaschinen, die er allerdings nie zum Laufen brachte. Trotzdem gelten sie als Vorläufer des modernen Computers.“<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.atitle=1.1+Eine+Analogie+zu+analog+und+digital&rft.au=J%C3%BCrgen+Beetz&rft.btitle=Digital%3A+Wie+Computer+denken&rft.date=2019&rft.genre=bookitem&rft.isbn=9783662586303&rft.pages=3&rft.pub=Springer-Verlag" style="display:none"> </span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">Eileen Lucas: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Charles Babbage and Ada Lovelace: The Pen Pals Who Imagined the First Computer</cite>. Rosen Publishing, 2021, ISBN 978-1-72534-225-5, 6.1 Conclusion, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>66</span> (englisch, <a rel="nofollow" class="external text" href="https://books.google.de/books?id=PfElEAAAQBAJ&pg=PA66&q=Analytical+Engine#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche): <span class="lang" lang="en" dir="auto">“In the 1930s, British mathematician Alan Turing introduced a multipurpose computing machine. Turing’s ‘Universal Machine’ would have some way to ‘read’ and ‘write’ data, a way to move the data in and out of a storage system, and a code of symbols by which the computer could instruct itself. According to some computer historians, the Turing Machine is still the standard against which all computers are measured. By that standard, Babbage’s Analytical Engine was the first computer.”</span><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.atitle=6.1+Conclusion&rft.au=Eileen+Lucas&rft.btitle=Charles+Babbage+and+Ada+Lovelace%3A+The+Pen+Pals+Who+Imagined+the+First+Computer&rft.date=2021&rft.genre=bookitem&rft.isbn=9781725342255&rft.pages=66&rft.pub=Rosen+Publishing" style="display:none"> </span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text">Joachim Stolze, Dieter Suter: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Quantum Computing: A Short Course from Theory to Experiment</cite>. Wiley, 2004, ISBN 3-527-40438-4, 3.1 Bit of history, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>27</span> (englisch, <a rel="nofollow" class="external text" href="https://books.google.de/books?id=JNZpcr9494UC&pg=PA27&q=Babbage#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche): <span class="lang" lang="en" dir="auto">“Babbage’s unpublished notebooks were rediscovered in 1937…”</span><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.atitle=3.1+Bit+of+history&rft.au=Joachim+Stolze%2C+Dieter+Suter&rft.btitle=Quantum+Computing%3A+A+Short+Course+from+Theory+to+Experiment&rft.date=2004&rft.genre=bookitem&rft.isbn=3527404384&rft.pages=27&rft.pub=Wiley" style="display:none"> </span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text">Allan G. Bromley: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Charles Babbage’s Analytical Engine, 1838</cite>. In: IEEE (Hrsg.): <cite class="lang" lang="en" dir="auto" style="font-style:italic">Annals of the History of Computing, July-Sept. 1982</cite>. <span style="white-space:nowrap">Band<span style="display:inline-block;width:.2em"> </span>4</span>, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em"> </span>3</span>, 1982, <a href="Internationale_Standardnummer_f%C3%BCr_fortlaufende_Sammelwerke" title="Internationale Standardnummer für fortlaufende Sammelwerke">ISSN</a> <span style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://zdb-katalog.de/list.xhtml?t=iss%3D%220164-1239%22&key=cql">0164-1239</a></span>, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>196<span style="display:inline-block;width:.2em"> </span>ff</span>., <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1109/MAHC.1982.10028">10.1109/MAHC.1982.10028</a></span> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.atitle=Charles+Babbage%E2%80%99s+Analytical+Engine%2C+1838&rft.au=Allan+G.+Bromley&rft.date=1982&rft.doi=10.1109%2FMAHC.1982.10028&rft.genre=journal&rft.issn=0164-1239&rft.issue=3&rft.jtitle=Annals+of+the+History+of+Computing%2C+July-Sept.+1982&rft.pages=196+ff.&rft.volume=4" style="display:none"> </span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://collection.sciencemuseumgroup.org.uk/documents/aa110000020"><i>Notations of calculations for the Analytical Engine.</i></a> In: <i>The Babbage Papers.</i> Science Museum Group,<span class="Abrufdatum"> abgerufen am 22. Januar 2022</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AComputerprogramm&rft.title=Notations+of+calculations+for+the+Analytical+Engine&rft.description=Notations+of+calculations+for+the+Analytical+Engine&rft.identifier=https%3A%2F%2Fcollection.sciencemuseumgroup.org.uk%2Fdocuments%2Faa110000020&rft.publisher=Science+Museum+Group&rft.language=en"> </span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text">Roland Schmitz: <cite style="font-style:italic">Theoretische Informatik für Dummies</cite>. 1. Auflage. Wiley, 2019, ISBN 978-3-527-71431-5, 15: Top-Ten-Theoretiker: Ada Lovelace (1815–1852) – (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=MmKzDwAAQBAJ&pg=PT338">eingeschränkte Vorschau</a> in der Google-Buchsuche): „Als eine von ganz wenigen Zeitgenossen erkannte sie [Anm.: Ada Lovelace] das wahre Potenzial von Babbages Analytical Engine und arbeitete ab ca. 1841 mit ihm zusammen. Der Höhepunkt dieser Zusammenarbeit kam im Jahr 1843, als Ada Lovelace ein Manuskript des italienischen Ingenieurs Luigi Menabrea, in dem dieser die Analytical Engine detailliert beschrieben hatte, ins Englische übersetzte. Sie beließ es aber nicht beim bloßen Übersetzen, sondern fügte eigene ›Notes of the Translator‹ hinzu, die am Ende doppelt so lang waren wie Menabreas ursprüngliches Manuskript. Die ›Notes‹ begründeten ihren späteren Weltruhm: Sie machte den konzeptionellen Unterschied zwischen der Differential [Anm.: Engine] und der Analytical Engine deutlich …, beschrieb moderne Programmierkonzepte wie Subroutinen und relative Funktionsaufrufe und beschrieb äußerst detailliert die Instruktionen, die nötig waren, damit die Analytical Engine eine komplizierte Aufgabe aus der Zahlentheorie (die Berechnung so genannter Bernoulli-Zahlen) bearbeiten konnte. Diese Instruktionen werden heute als das erste Computerprogramm überhaupt angesehen, und Ada Lovelace als der Welt erste Programmiererin.“<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.atitle=15%3A+Top-Ten-Theoretiker%3A+Ada+Lovelace+%281815-1852%29&rft.au=Roland+Schmitz&rft.btitle=Theoretische+Informatik+f%C3%BCr+Dummies&rft.date=2019&rft.edition=1.&rft.genre=bookitem&rft.isbn=9783527714315&rft.pub=Wiley" style="display:none"> </span></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text">Dorothy Stein: <cite style="font-style:italic">Ada, a life and a legacy</cite>. MIT Press, Cambridge, Mass. 1985, ISBN 0-262-19242-X.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.au=Dorothy+Stein&rft.btitle=Ada%2C+a+life+and+a+legacy&rft.date=1985&rft.genre=book&rft.isbn=026219242X&rft.place=Cambridge%2C+Mass.&rft.pub=MIT+Press" style="display:none"> </span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text">Jürgen Beetz: <cite style="font-style:italic">Digital: Wie Computer denken</cite>. Springer-Verlag, 2019, ISBN 978-3-662-58630-3, 1.1 Eine Analogie zu analog und digital, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>3</span> (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=DxegDwAAQBAJ&pg=PA3&q=Ada+Lovelace#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche): „Sie verfasste schriftliche Kommentare zur <i><a href="Analytical_Engine" title="Analytical Engine">Analytical Engine</a></i> und entwickelte eine Methode zur Programmierung von Maschinen nach dem ‚Babbage-System‘. Sie erdachte 1843 den ersten für einen ‚Computer‘ vorgesehenen Algorithmus zur Berechnung von Bernoullizahlen … und schrieb damit das erste Computerprogramm.“<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.atitle=1.1+Eine+Analogie+zu+analog+und+digital&rft.au=J%C3%BCrgen+Beetz&rft.btitle=Digital%3A+Wie+Computer+denken&rft.date=2019&rft.genre=bookitem&rft.isbn=9783662586303&rft.pages=3&rft.pub=Springer-Verlag" style="display:none"> </span></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a></span> <span class="reference-text"><cite style="font-style:italic">Reflections on the Decline of Science in England, and on Some of Its Causes</cite>. (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=-7NozQEACAAJ">eingeschränkte Vorschau</a> in der Google-Buchsuche): „In 1843 Babbage's friend mathematician Ada Lovelace translated a French paper about the Analytical Engine and, in her own annotations, published how it could perform a sequence of calculations, the first computer program.“<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.btitle=Reflections+on+the+Decline+of+Science+in+England%2C+and+on+Some+of+Its+Causes&rft.genre=book" style="display:none"> </span></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a></span> <span class="reference-text">Bayerischer Rundfunk Martin Schramm: <cite style="font-style:italic">Konrad Zuse, John von Neumann und Co.: Der Computer hatte viele Väter</cite>. 22. Februar 2022 (<a rel="nofollow" class="external text" href="https://www.br.de/wissen/konrad-zuse-computer-rechner-erfinder-vater-100.html">br.de</a> [abgerufen am 4. Mai 2022]).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.au=Bayerischer+Rundfunk+Martin+Schramm&rft.btitle=Konrad+Zuse%2C+John+von+Neumann+und+Co.%3A+Der+Computer+hatte+viele+V%C3%A4ter&rft.date=2022-02-22&rft.genre=book" style="display:none"> </span></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a></span> <span class="reference-text">Roland Hellmann: <cite style="font-style:italic">Rechnerarchitektur: Einführung in den Aufbau moderner Computer</cite>. Walter de Gruyter, 2013, ISBN 978-3-486-72002-0, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>271</span> (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=pEPpBQAAQBAJ&pg=PA271#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Computerprogramm&rft.au=Roland+Hellmann&rft.btitle=Rechnerarchitektur%3A+Einf%C3%BChrung+in+den+Aufbau+moderner+Computer&rft.date=2013&rft.genre=book&rft.isbn=9783486720020&rft.pages=271&rft.pub=Walter+de+Gruyter" style="display:none"> </span></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a></span> <span class="reference-text"><i>Gesetz zur Änderung von Vorschriften auf dem Gebiet des Urheberrechts</i> vom 24. Juni 1985 (<a rel="nofollow" class="external text" href="http://www.bgbl.de/xaver/bgbl/start.xav?startbk=Bundesanzeiger_BGBl&jumpTo=bgbl185s1137.pdf">BGBl. I S. 1137</a>); <a rel="nofollow" class="external text" href="http://dipbt.bundestag.de/dip21/btd/10/033/1003360.pdf">BT-Drs. 10/3360</a></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a></span> <span class="reference-text">BGHZ 94, 276 („Inkasso-Programm“, 9. Mai 1985)</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a></span> <span class="reference-text"><i>Urheberrechtsgesetz-Novelle 1993 – UrhGNov 1993</i>, <a rel="nofollow" class="external text" href="https://www.ris.bka.gv.at/Dokumente/BgblPdf/1993_91_0/1993_91_0.pdf">BGBl. Nr. 93/1993</a>; siehe auch <a href="Oberster_Gerichtshof_(%C3%96sterreich)" title="Oberster Gerichtshof (Österreich)">OGH</a>, <a href="Rechtsinformationssystem_des_Bundes" title="Rechtsinformationssystem des Bundes">RIS-Justiz</a> <a rel="nofollow" class="external text" href="https://www.ris.bka.gv.at/Dokument.wxe?Abfrage=Justiz&Dokumentnummer=JJR_19881025_OGH0002_0040OB00094_8800000_001">RS0076609</a></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a></span> <span class="reference-text"><i>Bundesgesetz über das Urheberrecht und verwandte Schutzrechte (Urheberrechtsgesetz, URG)</i> vom 9. Oktober 1992, <a rel="nofollow" class="external text" href="https://www.amtsdruckschriften.bar.admin.ch/viewOrigDoc/30002456.pdf?id=30002456">AS 1993, 1798</a></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a></span> <span class="reference-text"><i>Verordnung über bestimmte Schutzrechte im Bereich des Geistigen Eigentums (VGE)</i> vom 30. Januar 1996, <a rel="nofollow" class="external text" href="http://www.wipo.int/edocs/lexdocs/laws/de/li/li002de.pdf">LGBl. 1996 Nr. 31</a></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a></span> <span class="reference-text"><a href="Bezirksgericht_(DDR)" title="Bezirksgericht (DDR)">Bezirksgericht</a> Leipzig, <a href="Neue_Justiz" title="Neue Justiz">NJ</a> <a rel="nofollow" class="external text" href="https://books.google.de/books?id=SpMxAQAAIAAJ&q=%224+BCP+13/79%22">1981, 236</a></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a></span> <span class="reference-text"><a href="Staatliches_Vertragsgericht" title="Staatliches Vertragsgericht">Zentrales Vertragsgericht</a>, Spruchpraxis 11, 35 = Wirtschaftsrecht 1984, 21 = <a href="Gewerblicher_Rechtsschutz_und_Urheberrecht" title="Gewerblicher Rechtsschutz und Urheberrecht">GRUR-Int.</a> <a rel="nofollow" class="external text" href="https://beck-online.beck.de/?vpath=bibdata%2fzeits%2fGRURINT%2f1984%2fcont%2fGRURINT%2e1984%2e305%2e1%2ehtm">1984, 305</a> (zu § 18 der 1. Durchführungsverordnung zum Vertragsgesetz)</span>
</li>
</ol>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten (Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4047394-6">4047394-6</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-09-13" href="https://de.wikipedia.org/wiki/?title=Computerprogramm&oldid=259699147">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>